/*以下为全选准备*/
function All(e, itemName){
  var aa = document.getElementsByName(itemName);
  for (var i=0; i<aa.length; i++)
   aa[i].checked = e.checked;
}
function Item(e, allName){
  var all = document.getElementsByName(allName)[0];
  if(!e.checked) all.checked = false;
  else{
    var aa = document.getElementsByName(e.name);
    for (var i=0; i<aa.length; i++)
     if(!aa[i].checked) return;
    all.checked = true;
  }
}
function getCheckedNum(itemName){
	var result = 0;
	var aa = document.getElementsByName(itemName);  
	for (var i=0; i<aa.length; i++)
		if(aa[i].checked)
			result ++;
	return result;
}
function goto(url){
	window.location = url;
}
function HTMLEncode(text){
	text = text.replace(/<br\/>/ig,"\n");
	text = text.replace(/&quot;/ig,"\"");
	text = text.replace(/&#146;/ig,"\'");
	text = text.replace(/&lt;/ig,"<");
	text = text.replace(/&gt;/ig,">");
	return text;
}
function sizeToKB(size, precision) {
	if(!size && size!="" && size!="null") return;
	
	var unit = 'B';
	if ((size / 1048576) > 1) {
		unit = 'MB';
		size /= 1048576;
	} else if ((size / 1024) > 1) {
		unit = 'KB';
		size /= 1024;
	}
	if(!precision) precision = 0;
	precision = Math.pow(10, precision || 0);
	var nSize = Math.round(size * precision) / precision;
	return nSize + ' ' + unit;
}
function HandleData(url){
	$.post(url,
			function (data, textStatus){
				if(data == "1" || data == "success"){			
					alert("操作成功！");
					location.reload();
				}else if(data == "-1"){
					// 因参数不完整导致
					alert("操作失败！\n请检查您的操作是否有误！");
				}else if(data == "0"){
					alert("服务器端保存数据失败！");
				}else if(data == "-2"){
					alert("操作失败！\n已经存在同样的数据!");
				}else if(data == "-3"){
					alert("操作失败！\n数目已达上限!");
				}else{
					alert("操作失败!\n未知错误！");
				}
	}, "text");
}

function deleteDatas(url){
	if(!confirm("您确认要删除吗？")){
		return;
	}
	HandleData(url);
}
/**
 * 批量删除所选，注意最后提交的url类似于 demo.do?id=1&id=2
 * @param subSpec 要迭代的单选框特征，比如input.mch
 * @param url 要提交的url
 * @return
 */
function deleteAllChoose(subSpec,url){
	var index = 0;
	var param = "";	
	$(subSpec).each(function(I){
		if(this.checked){
			param += "ids=" + this.value + "&";
			index ++;
		}
	});
	if(param == ""){
		alert("请选择要删除的数据！");
		return;
	}
	// 构造删除请求字符串
	url += "?" + param;
	deleteDatas(url);
}

function checkInputClick(evt,value){
	if(evt.value == value){
		evt.value = "";
	}
}
function checkInputChange(evt,value){
	if(evt.value==""){
		evt.value = value;
	}
}
/**
 * 传入类似于yyyy-MM-dd 时间字符串，获取js Date对象
 * @return Date 对象
 */
function getJsDate(dateStr){
	// 修正了在火狐、IE下面日期转换产生的问题
	var str = null;
	if(dateStr.indexOf("-") != -1){
		str = dateStr.replace(/-/g,'/');
	}else{
		str = dateStr;
	}	
	var date = Date.parse(str);	
	return date;
}
/**
 * 传入似于yyyy-MM-dd 时间字符串，比较两个时间大小。true：前者大于或等于后者，false ：前者小于后者
 */
function compireDates(dateStr1, dateStr2){
	var d1 = getJsDate(dateStr1);
	var d2 = getJsDate(dateStr2);
	return d1 >= d2;
}
/**
 * 检测当前字符串是否为邮箱
 * @param mailStr
 * @return
 */
function checkEmail(mailStr){     
    var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;    
    if(myReg.test( mailStr )) return true;   
    return false;    
}

/* 
要求：一、电话号码由数字、"("、")"和"-"构成,eg : +86-010-54123672
二、电话号码为3到8位 
三、如果电话号码中包含有区号，那么区号为三位或四位 
四、区号用"("、")"或"-"和其他部分隔开 
用途：检查输入的电话号码格式是否正确 
输入： 
strPhone：字符串 
返回： 
如果通过验证返回true,否则返回false 
*/ 
function checkPhone(phoneStr)    
{   
    var regu =/(^((00)?[+]?[0-9]{2}[-]?)?([0-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/;    
    var re = new RegExp(regu);   
    if (re.test( phoneStr )) {   
      return true;   
    }   
    return false;   
}
/* 
要求：一、移动电话号码为11或12位，如果为12位,那么第一位为0 ,支持国家接入号 eg: +8613439683741
二、11位移动电话号码的第一位和第二位为"13,15,18" 
三、12位移动电话号码的第二位和第三位为"13" 
用途：检查输入手机号码是否正确 
输入： 
s：字符串 
返回： 
如果通过验证返回true,否则返回false 
*/ 
function checkMobile(mobieStr){
	var regu =/(^((00)?[+]?[0-9]{2}[-]?)?[1][3][0-9]{9}$)|(^[1][5][0-9]{9}$)|(^[1][8][0-9]{9}$)|(^0[1][3][0-9]{9}$)|(^0[1][5][0-9]{9}$)/;   
    var re = new RegExp(regu);   
    if (re.test( mobieStr )) {   
      return true;   
    } 
    return false;      
} 
/* 判断是否为邮政编码 */ 
function checkZipcode(zipStr)   
{   
    if(!checkNumber(zipStr))   
        return false;   
    if(zipStr.length !=6)   
    {   
        return false;   
    }   
    return true;
}
/**
 * 判断是否为数字
 * @param numStr
 * @return
 */
function checkNumber(numStr){          
    if (/^\d+$/.test(numStr)){   
       return true;   
    }else{   
       return false;   
    }   
}   

/**
 * 检测是否含有非法字符
 * @param {} t 要检测的字符串
 * @return 合法，返回true，否则返回false
 */
//var inValidStr = "[\\`-=\[];',./<>?:\"{}|+_*&^%$#@!~]";
//修改后的结果
var inValidStr = "[\\`=\[]'/<>\"{}|*&^%$#@]";
function checkStrValid(t){
	szMsg = inValidStr;
		result=true;
		for(i=1;i<szMsg.length+1;i++){
		 if(t.indexOf(szMsg.substring(i-1,i))>-1){	    
		   	result = false;
		   	break;
		 }
		}
		return result;
}

/**
* 检测URL地址是否合法
*/
 function checkURL(str_url){
  var strRegex = "^((https|http|ftp|rtsp|mms)?://)" 
  		+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@ 
        + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 
        + "|" // 允许IP和DOMAIN（域名）
        + "([0-9a-z_!~*'()-]+\.)*" // 域名- www. 
        + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名 
        + "[a-z]{2,6})" // first level domain- .com or .museum 
        + "(:[0-9]{1,4})?" // 端口- :80 
        + "((/?)|" // a slash isn't required if there is no file name 
        + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; 
        var re=new RegExp(strRegex); 
        if (re.test(str_url)){
            return (true); 
        }else{ 
            return (false); 
        }
    }

/**
 * query star by month and day or by date
 * @param month  month of year
 * @param day    day of month
 * @return star
 * @author y.su
   eg : 
   		getStarByDate("1", "1");
   		getStarByDate(1, 1);
   		getStarByDate(new Date());
 */
var getStarByDate = function() {
	return function() {
		var as = arguments;
		var month = null;
		var day = null;
		if (as.length == 1 && as[0] instanceof Date) 
		{
			month = as[0].getMonth() + 1;
			day = as[0].getDate();
		} else if (as.length == 2) 
		{
			month = as[0];
			day = as[1];
			
			if (month == "undefined" || day == "undefined") {
				return "";
			}
			if (month.length > 1 && month.indexOf("0") == 0)
				month = month.substring(1);
			
			if (day.length == 1){
				day = "0" + day;
			}
		} else {
			return "";
		} 
		var o = parseInt(month.toString() + day.toString());
		
		if (o >= 321 && o <= 420) 
		{
			return "白羊座";
		} 
		else if (o >= 421 && o <= 521) 
		{
			return "金牛座";
		}
		else if (o >= 522 && o <= 621) 
		{
			return "双子座";
		}
		else if (o >= 622 && o <= 722) 
		{
			return "巨蟹座";
		}
		else if (o >= 723 && o <= 823) 
		{
			return "狮子座";
		}
		else if (o >= 824 && o <= 923) 
		{
			return "处女座";
		}
		else if (o >= 924 && o <= 1023) 
		{
			return "天秤座";
		}
		else if (o >= 1024 && o <= 1122) 
		{
			return "天蝎座";
		}
		else if (o >= 1123 && o <= 1221) 
		{
			return "射手座";
		}
		else if (o >= 1222 && o <= 1231) 
		{
			return "魔羯座";
		}
		else if (o >= 101 && o <= 120) 
		{
			return "魔羯座";
		}
		else if (o >= 121 && o <= 219) 
		{
			return "水瓶座";
		}
		else if (o >= 220 && o <= 320) 
		{
			return "双鱼座";
		}
		
		return "";
	};
}();

function alertMsg(msg){
	alert("操作提示:\n" + msg + "\n请返回修改!" );
}

/**
	获取指定字符串的字节长度
	@param str 字符串
*/
function getByteLength(str) {
	var count = 0;
	for (var i = 0; i < str.length; i++)
	{
		var c = str.charAt(i);
		if (/^[\u0000-\u00ff]$/.test(c)){
			count += 1;
		} else {
			count += 2;
		}
	}
	return count;
}
	
/**
	以字节长度截取指定字符串
	@param str 字符串
	@param count str要截取的字节长度
	eg: subByteString("中国abc", 5);返回"中国a"
*/
function subByteString(str, count) {
	var and = 0;
	var result = "";
	for (var i = 0; i < str.length; i++)
	{
		var c = str.charAt(i);
		if (and == count) {
			break;
		} else if (and > count) {
			result = result.substring(0, result.length - 1);
			break;
		}
		if (/^[\u0000-\u00ff]$/.test(c)){
			and += 1;
		} else {
			and += 2;
		}
		result += c;
	}
	return result;
}
/**
验证输入框只能输入英文，数字，字母
*/
function checkInputEn(str){
	var strSource = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.()& ";
	var ch;
	var i;
	var temp;
	for (i = 0;i<=(str.length-1);i++){
		ch = str.charAt(i);
		temp = strSource.indexOf(ch);
		if (temp == -1){
			return true;
		}
	}
	return false;
}